using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using Tools.Domain.Common.Repositories.Contracts;
using Tools.Domain.Specifications;
using Webshop20.Domain.Customers.Core;

namespace Webshop20.Domain.Customers.Repositories.Implementation
{
    public class CustomerRepository : IRepository<Customer>
    {
        public void Add(Customer instance)
        {
            throw new System.NotImplementedException();
        }

        public void Save(Customer instance)
        {
            throw new System.NotImplementedException();
        }

        public void Update(Customer instance)
        {
            throw new System.NotImplementedException();
        }

        public void SaveOrUpdate(Customer instance)
        {
            throw new System.NotImplementedException();
        }

        public void SaveOrUpdateCopy(Customer instance)
        {
            throw new System.NotImplementedException();
        }

        public void Delete(Customer instance)
        {
            throw new System.NotImplementedException();
        }

        public Customer FindById(object id)
        {
            throw new System.NotImplementedException();
        }

        public IEnumerable<Customer> FindAll()
        {
            throw new System.NotImplementedException();
        }

        public IQueryable<Customer> Find(Expression<Func<Customer, bool>> searchTerm)
        {
            throw new System.NotImplementedException();
        }

        public IQueryable<Customer> Find(Func<Customer, bool> searchTerm)
        {
            throw new System.NotImplementedException();
        }

        public IQueryable<Customer> FindBySpecification(ISpecification<Customer> specification)
        {
            throw new System.NotImplementedException();
        }

        public IQueryable<Customer> FindByQuery(IQuery<Customer> query)
        {
            throw new System.NotImplementedException();
        }

        public IQueryable<R> FindInRole<R>(Expression<Func<Customer, bool>> searchTerm)
        {
            throw new System.NotImplementedException();
        }

        public R FindByIdInRole<R>(object id)
        {
            throw new System.NotImplementedException();
        }

        public IEnumerable<R> FindAllInRole<R>()
        {
            throw new System.NotImplementedException();
        }

        public IQueryable<R> FindBySpecificationInRole<R>(ISpecification<Customer> specification)
        {
            throw new System.NotImplementedException();
        }

        public IFutureValue<Customer> FutureFindById(object id)
        {
            throw new System.NotImplementedException();
        }

        public IFutureQueryOf<Customer> FutureFindAll()
        {
            throw new System.NotImplementedException();
        }

        public IFutureQueryOf<Customer> FutureFind(Expression<Func<Customer, bool>> searchTerm)
        {
            throw new System.NotImplementedException();
        }

        public IFutureQueryOf<Customer> FutureFindBySpecification(ISpecification<Customer> specification)
        {
            throw new System.NotImplementedException();
        }
    }
}